%!TEX root = 0.tex

\section{Introduction}  \label{sec:introduction}

Over the past fifteen years, underspecification has become the
standard approach to dealing with scope ambiguities: Almost every
large-scale handcrafted grammar that supports semantics construction
uses it in some form or another. This is primarily because it allows
the grammar writer to separate the problem of semantic ambiguity from
the problem of (underspecified) semantics construction: The grammar
only derives an \emph{underspecified description} of all semantic
readings, and the responsibility for actually enumerating the
individual readings is delegated to a later stage of
processing. Because the enumeration process can be delayed until it is
actually needed, and readings that contradict our world and context
knowledge could be eliminated by that time, underspecification also
has the potential to speed up processing of ambiguities.

This document describes Utool (the Swiss Army Knife of
Underspecification), a tool that is designed to perform a number of
operations that arise when working with underspecified descriptions
(or USRs, underspecified semantic representations). Its main two
functions are to \emph{solve} an underspecified description (i.e., to
enumerate all readings from a description) and to \emph{convert}
descriptions between different underspecification formalisms (such as
dominance constraints, MRS, and Hole Semantics). In addition, it can
perform a number of smaller tasks, such as deciding solvability,
counting readings, and determining whether a description belongs to a
class with specific useful properties.

Utool was developed in the context of the CHORUS project in the SFB
(Collaborative Research Centre) 378 ``Ressource-adaptive cognitive
processes'', which was funded by the German Research Organisation
(DFG). We developed a version in C++ in 2004-05. Then we ported
release 2.0.1 of the old utool to Java in 2006. The Java version 3.0
is superior to the C++ system in many respects: It is much cleaner,
more portable, easier to distribute, has more functionality and better
error handling, comes with an integrated GUI, and on some platforms it
is even faster. Version 3.1 adds significantly improved GUI support and various other improvements. Utool requires Java SE 5.0 or higher to run or
compile.

Technically, Utool is a collection of front-ends to a common
underlying library for working with labelled dominance graphs, which
can be used independently in other Java programs.  Utool itself comes with three different front-ends: It can be run as a command-line tool; it can be run in a server mode in which it will accept instructions over a network; and it can be run as the Underspecification Workbench (Ubench), which offers the complete functionality of Utool in a convenient GUI. We distribute Utool 3.1 under the Gnu Public Licence
(GPL), although this might change in a future release.

This document is not an introduction to underspecification. We and
others have written many research papers about this topic area, and we
cannot do it justice in a system manual. For an overview, we refer you
to the following literature:
\begin{enumerate}
\item \citeN{blackburn05:_repres_infer_natur_languag} give a very readable introduction to underspecification in the Hole Semantics framework in their textbook on computational semantics.
\item \citeN{DeemterPetersBook} gave the first overview of the ideas
behind underspecification and some early formalisms. This book is ten
years old, and many details are now obsolete, but it can still serve
as a good starting point.
\item \citeN{CopFliSag97} introduce Minimal Recursion Semantics, which
is used in the current large-scale HPSG grammars. The paper is
interesting because it is about an underspecification formalism that
is in widespread use, and because it talks a lot about semantics
construction in an underspecification context.
\item \citeN{clls2000} define dominance constraints and show how to do
semantics construction for it. The dominance graphs Utool works with
are based on dominance constraints, and if you come from a linguistic
background, this paper will perhaps be most helpful for you to get an
idea of what dominance constraints do.
\item \citeN{KolTha05b} give a (very short) overview of the
development of solvers for dominance constraints and dominance graphs,
and point to some recent literature. Utool implements the chart-based
graph solver introduced in that paper.
\end{enumerate}


This document is structured as follows. We will first give a tutorial
introduction to Utool in Section~\ref{sec:tutorial}. Then we will
explain the operations supported by the command-line and server versions of Utool, and the different ways in
which Utool can be called, in
Section~\ref{sec:operations}. Section~\ref{sec:codecs} is devoted to
the \emph{codecs} which make it possible for utool to read and write
underspecified descriptions from different formalisms; it also hints
at the theory behind the conversions and provides pointers to the
literature. Section~\ref{sec:practice} contains some tips and tricks
for using Utool in practice. Finally, Section~\ref{sec:building}
explains how to recompile a modified version of Utool, and
Section~\ref{sec:conclusion} concludes.

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "0"
%%% TeX-command-default: "LaTeX"
%%% End: 
